﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using DTO;
using BUS;
namespace Presentation
{
    public partial class QuyDinh : Form
    {
        DTOQuyDinh qd = new DTOQuyDinh();
        DTOQuyDinh updateqd = new DTOQuyDinh();
        public QuyDinh()
        {
            InitializeComponent();
        }
        private bool KiemTra(string text)
        {
            if (string.IsNullOrEmpty(text) || string.IsNullOrWhiteSpace(text))
            {
                return true;
            }
            for (int i = 0; i < text.Length; i++)
            {
                if (char.IsDigit(text[i]) == false)
                {
                    return true; // ky tu la chu;
                }
            }
            return false;
        }
        private void LoadQuyDinh()
        {
            qd = BUSQuyDinh.DocQuyDinh();
            textBox_oldmin.Text = qd.Tuoimin.ToString();
            textBox_oldmax.Text = qd.Tuoimax.ToString();
            textBox_nummax.Text = qd.Sisomax.ToString();
            textBox_classmax.Text = qd.Sllop.ToString();
            if (bool.Parse(qd.Doitenlop.ToString()) == true)
            {
                checkBox_lop.Checked = true;
            }
            textBox_objmax.Text = qd.Slmonhoc.ToString();
            if (bool.Parse(qd.Doitenmon.ToString()) == true)
            {
                checkBox_mon.Checked = true;
            }
            textBox_bench.Text = qd.Diemchuan.ToString();
        }
        private void QuyDinh_Load(object sender, EventArgs e)
        {

            LoadQuyDinh();
        }

        private void button_thoat_Click(object sender, EventArgs e)
        {
            LuuThongTin();
            BUSQuyDinh.UpdateQuyDinh(updateqd);
            this.Hide();
        }
        private void LuuThongTin()
        {
            if (KiemTra(textBox_oldmin.Text) || KiemTra(textBox_oldmax.Text) || KiemTra(textBox_nummax.Text) || KiemTra(textBox_classmax.Text) || KiemTra(textBox_bench.Text) || KiemTra(textBox_objmax.Text))
            {
                MessageBox.Show("Chú ý: Dữ liệu nhập vào phải là số và không được bỏ trống bất kỳ ô nhập liệu nào.", "Thông Báo", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                return;
            }
            else
            {
                updateqd.Id = qd.Id;
                updateqd.Tuoimin = int.Parse(textBox_oldmin.Text);
                updateqd.Tuoimax = int.Parse(textBox_oldmax.Text);
                updateqd.Sisomax = int.Parse(textBox_nummax.Text);
                updateqd.Sllop = int.Parse(textBox_classmax.Text);
                if (checkBox_lop.Checked == true)
                {
                    updateqd.Doitenlop = true;
                }
                else updateqd.Doitenlop = false;
                updateqd.Slmonhoc = int.Parse(textBox_objmax.Text);
                if (checkBox_mon.Checked == true)
                {
                    updateqd.Doitenmon = true;
                }
                else updateqd.Doitenmon = false;
                updateqd.Diemchuan = int.Parse(textBox_bench.Text);
            }
        }

        private void button_luu_Click(object sender, EventArgs e)
        {
            if (int.Parse(textBox_bench.Text) < 5)
            {
                MessageBox.Show("Chú ý: Điểm chuẩn không thể bé hơn 5.", "Thông Báo", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                return;
            }
            if (int.Parse(textBox_objmax.Text) < 9)
            {
                MessageBox.Show("Chú ý: Số lượng môn học không thể bé hơn 9.", "Thông Báo", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                return;
            }
            LuuThongTin();
            if (BUSQuyDinh.UpdateQuyDinh(updateqd) == 0)
            {
                MessageBox.Show("Chú ý: Không thể cập nhật thông tin. Có lỗi hệ thống", "Thông Báo", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }
            else
            {
                MessageBox.Show("Đã cập nhật thông tin.", "Thông Báo", MessageBoxButtons.OK, MessageBoxIcon.Information);
                this.Refresh();
            }
        }

        private void button_reload_Click(object sender, EventArgs e)
        {
            LoadQuyDinh();
        }
    }
}
